package JavaSE.Abstract;


/**
 * 抽象类
 * 不能实例化,其他与普通类类似
 * 要继承抽象类,必须重写抽象类中的所有抽象方法
 * 抽象类也可以继承抽象类,应且父类抽象方法可以不重写,但下一个类继承抽象子类时,需重写全部
 * final不能修饰抽象方法和抽象类
 * private--不能修饰抽象方法
 * 由抽象方法的类是抽象类,反之则不一定
 */
abstract class Shape{

    /*public String name;
    public int age;

    public void func(){
        System.out.println("hei");
    }

    public static void func2(){
        System.out.println("静态方法!");
    }

     */

    public abstract void draw();

}

class Cycle extends Shape{
    @Override
    public void draw() {
        System.out.println("⚪");
    }
}

public class abstract_ {

    public static void drawMap(Shape shape){
        shape.draw();
    }

    public static void main(String[] args) {
        Cycle cycle = new Cycle();
        drawMap(cycle);
    }

}




